﻿#pragma once
#include "MyHeadFile.h"
#include <list>

using namespace std;

// CMyDlgComBox 对话框

class CMyDlgComBox : public CDialogEx
{
	DECLARE_DYNAMIC(CMyDlgComBox)

public:
	CMyDlgComBox(CWnd* pParent = nullptr);   // 标准构造函数
	virtual ~CMyDlgComBox();

// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_DIALOG3 };
#endif

protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持

	DECLARE_MESSAGE_MAP()

private:
    struct FileHeader_Machine
    {
        WORD wValue;           //值
        CString strExplain;    //对应的说明
    };
	list<FileHeader_Machine> m_FileHeadMachineData;

private:
	//文件头中的Machine标志，将其相关数值插入链表
	void PushListToFileHeaderMachine();

	//将链表中的数据插入ComBox
	void ShowDataToComBox();

private:
	WORD* m_pwValue;          //根据值解析
	DWORD m_dwFlag;           //是哪个结构体的哪个成员
	CString m_FilePath;       //修改的文件是哪个
	DWORD m_dwFileOffset;       //在文件偏移哪个位置


public:
	//设置值
	void SetValue(WORD* pwVal);

	//设置标志
	void SetFlag(DWORD dwFlag);

	//设置文件路径
	void SetFilePath(CString FilePath);

	//设置文件偏移
	void SetFileOffset(DWORD dwFileOffset);

	//写数据到文件
	BOOL MyWriteFile(void* pValue);

	afx_msg void OnBnClickedOk();
	afx_msg void OnBnClickedCancle();
	virtual BOOL OnInitDialog();
	CComboBox m_cmbLocation;
};
